from .nnt_models import (
    
    NntCompileModel,
    NntShowModelInfo,
    NntSaveModel,
    NntLoadModel,
    NntAnalyzeModel,
    NntTrainModel,
    NntEvaluatePredictions,
    NntVisualizePredictionMetrics,
    NntFineTuneModel,
    NntEditModelLayers,
    NntMergeExtendModel,
    NntVisualizeGraph,
    NntSHAPSummaryNode,
    NntVisualizeTrainingMetrics,
    NntTrainingHyperparameters,
    NntInference,
    NntVisualizeConfidenceScores,
    NntAnalyzeInferenceMetrics,

)

from .nnt_layers import (
    NntDefineDenseLayer,
    NntDefineConvLayer,
    NntDefinePoolingLayer,
    NntInputLayer,
    NntDefineNormLayer,
    NntDefineActivationLayer,
    NntShowLayerStack,
    NntDefineLSTMLayer,
    NntDefineGRULayer,
    NntDefineRNNLayer,
    NntDefineFlattenLayer,
    NntDefineReshapeLayer,
)

from .nnt_transformers import (
    NntDefineTransformerEncoderLayer,
    NntDefinePositionalEncoding,
    NntDefineMultiheadAttention,
    NntDefineVanillaAttention,
    NntDefineLinearAttention,
    NntDefineTransformerXLAttention,
    NntDefineReformerAttention,
    NntDefineLocalAttention,
    NntDefineRelativePositionBias,
    NntDefineAlibiPositionalBias,
    NntDefineRotaryPositionalEmbedding,
    NntTextBatchProcessor,


)

from .nnt_tensors import(
    NntTensorOperations,
    NntTensorToText,
    NntTextToTensor,
    NntTensorElementToImage,
    NntRandomTensorGenerator,
    NntTensorElementToImage,
    NntTensorSlice,
    NntTorchvisionDatasets,
    NntPlotTensors,
    NntImageToTensor,
)

from .nnt_data import (
    NntTorchvisionDataLoader,
    NntFileLoader,
    NntTimeSeriesDataLoader,
    NntHuggingFaceDataLoader,
    NntDatasetToImageTensor,
    NntDatasetToTextTensor,
    NntDatasetToTargetTensor,
    NntDatasetToTensor,
)




NODE_CLASS_MAPPINGS = {
    "NntCompileModel": NntCompileModel,
    "NntShowLayerStack": NntShowLayerStack,
    "NntShowModelInfo": NntShowModelInfo,
    "NntSaveModel": NntSaveModel,
    "NntLoadModel": NntLoadModel,
    "NntDefineDenseLayer": NntDefineDenseLayer,
    "NntDefineConvLayer": NntDefineConvLayer,
    "NntDefinePoolingLayer": NntDefinePoolingLayer,
    "NntInputLayer": NntInputLayer,
    "NntDefineNormLayer": NntDefineNormLayer,
    "NntDefineLSTMLayer": NntDefineLSTMLayer,
    "NntDefineGRULayer":NntDefineGRULayer,
    "NntDefineRNNLayer":NntDefineRNNLayer,
    "NntDefineActivationLayer": NntDefineActivationLayer,
    "NntAnalyzeModel": NntAnalyzeModel,
    "NntTrainModel": NntTrainModel,
    "NntEvaluatePredictions": NntEvaluatePredictions,
    "NntVisualizePredictionMetrics": NntVisualizePredictionMetrics,
    "NntFineTuneModel": NntFineTuneModel,
    "NntEditModelLayers": NntEditModelLayers,
    "NntMergeExtendModel": NntMergeExtendModel,
    "NntDefineTransformerEncoderLayer": NntDefineTransformerEncoderLayer,
    "NntDefinePositionalEncoding": NntDefinePositionalEncoding,
    "NntDefineMultiheadAttention": NntDefineMultiheadAttention,
    "NntVisualizeGraph": NntVisualizeGraph,
    "NntTensorOperations": NntTensorOperations,
    "NntTensorToText":NntTensorToText,
    "NntTextToTensor": NntTextToTensor,
    "NntTensorElementToImage":NntTensorElementToImage,
    "NntRandomTensorGenerator": NntRandomTensorGenerator,
    "NntTensorElementToImage": NntTensorElementToImage,
    "NntSHAPSummaryNode":NntSHAPSummaryNode,
    "NntTensorSlice":NntTensorSlice,
    "NntDefineVanillaAttention":NntDefineVanillaAttention,
    "NntDefineLinearAttention":NntDefineLinearAttention,
    "NntDefineTransformerXLAttention":NntDefineTransformerXLAttention,
    "NntDefineReformerAttention":NntDefineReformerAttention,
    "NntDefineLocalAttention":NntDefineLocalAttention,
    "NntDefineRelativePositionBias":NntDefineRelativePositionBias,
    "NntDefineAlibiPositionalBias":NntDefineAlibiPositionalBias,
    "NntDefineRotaryPositionalEmbedding":NntDefineRotaryPositionalEmbedding,
    "NntTorchvisionDatasets": NntTorchvisionDatasets,
    "NntTrainingHyperparameters":NntTrainingHyperparameters,
    "NntDefineFlattenLayer":NntDefineFlattenLayer,
    "NntVisualizeTrainingMetrics":NntVisualizeTrainingMetrics,
    "NntDefineReshapeLayer": NntDefineReshapeLayer,
    "NntInference":NntInference,
    "NntVisualizeConfidenceScores": NntVisualizeConfidenceScores,
    "NntAnalyzeInferenceMetrics": NntAnalyzeInferenceMetrics,
    "NntTorchvisionDataLoader": NntTorchvisionDataLoader,
    "NntFileLoader": NntFileLoader,
    "NntTimeSeriesDataLoader": NntTimeSeriesDataLoader,
    "NntHuggingFaceDataLoader": NntHuggingFaceDataLoader,
    "NntTextBatchProcessor": NntTextBatchProcessor,
    "NntDatasetToImageTensor":NntDatasetToImageTensor,
    "NntDatasetToTextTensor":NntDatasetToTextTensor,
    "NntDatasetToTargetTensor":NntDatasetToTargetTensor,
    "NntDatasetToTensor" : NntDatasetToTensor,
    "NntPlotTensors":NntPlotTensors,
    "NntImageToTensor" : NntImageToTensor,
}

NODE_DISPLAY_NAME_MAPPINGS = {
    "NntDefineDenseLayer": "NNT Define Dense Layer",
    "NntCompileModel": "NNT Compile Model",
    "NntShowLayerStack": "NNT Show Layer Stack",
    "NntShowModelInfo": "NNT Show Model Info",
    "NntSaveModel": "NNT Save Model",
    "NntLoadModel": "NNT Load Model",
    "NntDefineConvLayer": "NNT Define Conv Layer",
    "NntDefinePoolingLayer": "NNT Define Pooling Layer",
    "NntInputLayer": "NNT Input Layer",
    "NntDefineLSTMLayer": "NNT Define LSTM Layer",
    "NntDefineGRULayer":"NNT Define GRU Layer",
    "NntDefineRNNLayer":"NNT Define RNN Layer",
    "NntDefineNormLayer": "NNT Define Normalization Layer",
    "NntDefineActivationLayer": "NNT Define Activation Layer",
    "NntAnalyzeModel": "NNT Analyze Model",
    "NntTrainModel": "NNT Train Model",
    "NntEvaluatePredictions": "NNT Evaluate Predictions",
    "NntVisualizePredictionMetrics": "NNT Visualize Prediction Metrics",
    "NntFineTuneModel": "NNT Fine Tune Model",
    "NntEditModelLayers": "NNT Edit Model Layers",
    "NntMergeExtendModel": "NNT Merge and Extend Model",
    "NntDefineTransformerEncoderLayer": "NNT Define Transformer Encoder Layer",
    "NntDefinePositionalEncoding": "NNT Define Positional Encoding",
    "NntDefineMultiheadAttention": "NNT Define Multihead Attention",
    "NntVisualizeGraph" : "NNT Visualize Model Graph",
    "NntTensorOperations" : "NNT Tensor Operations",
    "NntTensorToText": "NNT Tensor To Text",
    "NntTextToTensor": "NNT Text To Tensor",
    "NntTensorElementToImage": "NNT Tensor Element To Image",
    "NntRandomTensorGenerator":"NNT Random Tensor Generator",
    "NntDataLoader":"NNT Data Loader",
    "NntTensorElementToImage": "NNT Tensor Element To Image",
    "NntSHAPSummaryNode": "NNT SHAP Summary Node",
    "NntTensorSlice": "NNT Tensor Slice",
    "NntDefineVanillaAttention":"NNT Define Vanilla Attention",
    "NntDefineLinearAttention":"NNT Define Linear Attention",
    "NntDefineTransformerXLAttention":"NNT Define TransformerXL Attention",
    "NntDefineReformerAttention":"NNT DefineReformer Attention",
    "NntDefineLocalAttention":"NNT DefineLocal Attention",
    "NntDefineRelativePositionBias":"NNT Define Relative Position Bias",
    "NntDefineAlibiPositionalBias":"NNT Define Alibi PositionalBias",
    "NntDefineRotaryPositionalEmbedding":"NNT Define Rotary Positional Embedding",
    "NntTorchvisionDatasets": "NNT TorchVision Datasets",
    "NntTrainingHyperparameters":"NNT Training Hyperparameters",
    "NntDefineFlattenLayer":"NNT Define Flatten Layer",
    "NntVisualizeTrainingMetrics":"NNT Visualize Training Metrics",
    "NntDefineReshapeLayer": "NNT Define Reshape Layer",
    "NntInference":"NNT Inference",
    "NntVisualizeConfidenceScores": "NNT Visualize Confidence Scores",
    "NntAnalyzeInferenceMetrics": "NNT Analyze Inference Metrics",
    "NntTorchvisionDataLoader": "NNT TorchVision Data Loader",
    "NntFileLoader": "NNT File Data Loader",
    "NntTimeSeriesDataLoader": "NNT Time Series Data Loader", 
    "NntHuggingFaceDataLoader": "NNT HuggingFace Data Loader",
    "NntTextBatchProcessor" : "NNT Text Batch Processor",
    "NntDatasetToImageTensor":"NntDatasetToImageTensor",
    "NntDatasetToTextTensor":"NNT Dataset To Text Tensor",
    "NntDatasetToTargetTensor":"NNT Dataset To Target Tensor",
    "NntDatasetToTensor":"NNT Dataset To Tensor" ,
    "NntPlotTensors":"NNT Plot Tensors",
    "NntImageToTensor":"NNT Image To Tensor",
}

#WEB_DIRECTORY = "js"
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]